package com.dianrui.fmi;

import android.app.Application;
import android.content.Context;
import android.os.Build;
import android.os.StrictMode;
import android.support.multidex.MultiDex;

import com.dianrui.fmi.util.GlideImageLoader;
import com.dianrui.fmi.util.Static;
import com.facebook.FacebookSdk;
import com.twitter.sdk.android.core.Twitter;

import cn.finalteam.galleryfinal.CoreConfig;
import cn.finalteam.galleryfinal.FunctionConfig;
import cn.finalteam.galleryfinal.GalleryFinal;
import cn.finalteam.galleryfinal.ImageLoader;
import cn.finalteam.galleryfinal.ThemeConfig;
import cn.jpush.im.android.api.JMessageClient;


public class MyApplication extends Application {

    private static FunctionConfig functionConfig;
    private ImageLoader imageloader;
    private CoreConfig coreConfig;


    @Override
    public void onCreate() {
        super.onCreate();
        initJMessage();
        Static.CONTEXT = this;
        repairAndroidOsFileUriExposedException();
        initCameraConfig();
        FacebookSdk.sdkInitialize(getApplicationContext());
        Twitter.initialize(this);
    }

    private void initJMessage() {
        JMessageClient.setDebugMode(true);
        JMessageClient.init(this);
    }



    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }




    public void repairAndroidOsFileUriExposedException() {
        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            builder.detectFileUriExposure();
        }
    }

    public void initCameraConfig() {
        if (functionConfig == null) {
            //配置功能
            functionConfig = new FunctionConfig.Builder().setMutiSelectMaxSize(9)
                    .setEnableEdit(true)//开启编辑功能
                    .setEnableCrop(true)//开启裁剪功能
                    .setEnableRotate(false)//开启旋转功能
                    .setEnableCamera(false)//开启相机功能
                    .setCropSquare(true)//裁剪正方形
                    .setRotateReplaceSource(false)//配置选择图片时是否替换原始图片，默认不替换
                    .setCropReplaceSource(false)//配置裁剪图片时是否替换原始图片，默认不替换
                    .setForceCrop(false)//启动强制裁剪功能,一进入编辑页面就开启图片裁剪，不需要用户手动点击裁剪，此功能只针对单选操作
                    .setForceCropEdit(true)//在开启强制裁剪功能时是否可以对图片进行编辑（也就是是否显示旋转图标和拍照图标）
                    .setEnablePreview(true)//是否开启预览功能
                    .build();
            //配置imageloader
            imageloader = new GlideImageLoader();
            //核心配置
            coreConfig = new CoreConfig.Builder(getApplicationContext(), imageloader, new ThemeConfig.Builder().setTitleBarBgColor(getResources().getColor(R.color.orange)).build()).setFunctionConfig(functionConfig).build();
            GalleryFinal.init(coreConfig);
        }

    }

    public static FunctionConfig getFunctionConfig() {
        return functionConfig;
    }

}
